Conventionally, when a request for a web page or other structured document transmitted by a client device is received by a server or computing system hosting the web page, the hosting system typically generates a base web page in the form of an Hyper Text Markup Language (HTML), Extensible Markup Language (XML), or other web browser-supported structured document. The generated structured document is then transmitted in a response to the requesting client via a Hypertext Transfer Protocol (HTTP) or other suitable connection for rendering at the client device. The structured document may include one or more resources (e.g. a JavaScript script or resource, a Cascading Style Sheet (CSS) resource, an image, a video, etc.), or references to such resources, embedded within the transmitted document. By way of example, a resource embedded in an HTML document may generally be included or specified within a script element, image element, or object element, among others, depending on the type of resource. The element referencing or specifying the resource may include a source attribute (e.g., src) identifying a location of the resource to the client requesting the web page. Typically, upon receipt of the response, the web browser or other client application running at the client device then constructs a document object model (DOM) representation of the received structured document and requests the resource(s) (which may be at one or more other external locations) embedded in the document.
Further, when a user viewing web content at a remote client desires to navigate to a new (or “target”) web page from the currently rendered web page (e.g., by clicking on a link within the currently rendered web page, by clicking the back or forward button of a browser application, or by entering the URL of the target web page), the browser responsible for rendering the web content formulates a request for the new web page and transmits the request to a server hosting the new web page. Thus, conventionally, each time a user requests to navigate to a new web page, the browser transmits a request to the server for the full new web page, unloads the currently rendered page, and renders the new web page received from the server in its entirety. Conventionally, this full page loading and unloading scheme would hold true for each subsequent page the user requests. The web page and certain resources embedded in the underlying web page may be located in a browser cache and retrieved locally. However, many dynamic or interactive web pages include content and other resources that may be changed or updated frequently since they were last rendered. Conventionally, if any portion of a cached page is changed, the entire cached page is invalidated and emptied from the cache.